package sensors;

import flixel.FlxObject;
import flixel.FlxG;
import flixel.addons.tile.FlxTilemapExt;


// un sensor que se activa al ser tocado por un robot o el jugador
class TouchSensor extends BasicSensor{
	private var _timeActive: Float = 0;				// contador del tiempo que el sensor estuvo activo
	private static inline var _maxActiveTime: Float = 3;	// el tiempo que tarda el sensor en apagarse


	public function new(X: Float, Y: Float, map: FlxTilemapExt){
		super(X, Y, map);
		width = height = 8;
		x -= 4;
		y -= 4;
		deactivate();
		BasicSensor._sensors.get("TouchSensor").add(this);
	}

	public override function update()
	{
		if(_timeActive > 0) _timeActive -= FlxG.elapsed;
		if(_timeActive <= 0){
			deactivate();
		}
	}

	override public function activate(): Void
	{
		if(!isActive)
		{
			_timeActive = _maxActiveTime;
			_map.setTileByIndex(_iTile, level.Tiles.TOUCH_SENSOR_ON, true);
			super.activate();
		}
	}

	override public function deactivate(): Void
	{
		if(isActive)
		{
			trace("DEactivating...");
			_map.setTileByIndex(_iTile, level.Tiles.TOUCH_SENSOR_OFF, true);
			super.deactivate();
		}
	}
}